package com.cauli.manage.user.model.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.cauli.model.entity.BaseEntity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * @author Cauli
 * @date 2022/12/14 13:48
 * @description 用户
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("user")
@ApiModel(value = "User", description = "用户")
public class User extends BaseEntity {
    /**
     * 用户ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @TableId("user_id")
    private Long userId;

    /**
     * 角色id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @TableField(value = "role_id")
    private Long roleId;

    /**
     * 用户名
     */
    @TableField(value = "username")
    private String username;

    /**
     * 密码
     */
    @TableField(value = "password")
    private String password;

    /**
     * 用户类型（0系统用户）
     */
    @TableField(value = "user_type")
    private Integer userType;

    /**
     * 用户邮箱
     */
    @TableField(value = "email")
    private String email;

    /**
     * 手机号码
     */
    @TableField(value = "phone_number")
    private String phoneNumber;

    /**
     * 用户性别（0未知 1男 2女）
     */
    @TableField(value = "sex")
    private Integer sex;

    /**
     * 头像地址
     */
    @TableField(value = "avatar")
    private String avatar;

    /**
     * 最后登录IP
     */
    @TableField(value = "login_ip")
    private String loginIp;

    /**
     * 最后登录时间
     */
    @TableField(value = "login_date")
    private Date loginDate;

    /**
     * 用户状态（0停用 1正常）
     */
    @TableField(value = "status")
    private Integer status;
}
